package routers

import (
	"gonexample/gone/config"

	"github.com/gin-gonic/gin"
)

// Router router
type Router struct {
	*gin.Engine
}

// Routers 路由配置
func Routers() *gin.Engine {
	r := &Router{}
	r.Engine = gin.New()

	// 生产环境不打印请求日志
	if config.Server.RunMode != "release" {
		r.Use(gin.Logger())
	}

	// 设置Recovery中间件，主要用于拦截paic错误，不至于导致进程崩掉
	r.Use(gin.Recovery())

	// 设置 session
	// if config.App.Session {
	// 	store, _ := redis.NewStoreWithPool(gredis.RedisConn, []byte(config.App.SessionKey))
	// 	store.Options(sessions.Options{
	// 		// Path:     "/",
	// 		// Domain:   options.Domain,
	// 		MaxAge: config.App.SessionMaxAge,
	// 		// Secure:   options.Secure,
	// 		HttpOnly: true,
	// 	})
	// 	r.Use(sessions.Sessions(config.App.SessionName, store))
	// }

	// 加载接口路由配置
	r.DemoRouters()

	r.APIRouters()

	return r.Engine
}
